﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Entities;
namespace WCF_ListenMusic.Services.Module_Song.Public
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ISongService" in both code and config file together.
    [ServiceContract]
    public interface ISongService
    {
        [OperationContract]
        List<Song> getAllSong();
        [OperationContract]
        List<View_BXH_BaiHat> getBXH_BaiHat();
        [OperationContract]
        Song getSong_byID(int songid);
        [OperationContract]
        List<SongAlbum> getSong_byAlbumID(int albumid);
        [OperationContract]
        int countSong_bySingerid(int singerid);
        [OperationContract]
        List<Song> get10song_bySingerid(int singerid);
        [OperationContract]
        List<SongSinger> getRandom10Song_byCategoryid(int categoryid);
        [OperationContract]
        List<SongSinger> getSong_bySongID(int songid);
        [OperationContract]
        List<CountrySong> getRangeSong_Video_byTypeid(int typeid, int countryid);
        [OperationContract]
        List<View20_Random_BaiBat> get20Random_Song();
        [OperationContract]
        List<SongSinger> getAllSong_bySongName(string songname, int typeid);
        [OperationContract]
        List<ViewSearch_SongName> search_SongName(string keyword);
        [OperationContract]
        int countSong_byCategoryID(int categoryid);
        [OperationContract]
        List<SongAlbum> getAllSongInAlbum();
        [OperationContract]
        List<Entities.Type> getAllType();
        [OperationContract]
        List<Album_Song> getSonginAlbum(int songid);
        [OperationContract]
        List<CategorySong> getSongbyCategoryID(int categoryid);
        [OperationContract]
        List<SongSinger> getSongbySingerID(int singerid, int typeid);
        [OperationContract]
        List<SongSinger> getSongbySingerName(string singerName, int typeid);
        [OperationContract]
        bool updateCountView(int songid);
    }
}
